#include "udp_server.hpp"
#include <iostream>
#include <memory>
#include <cstdlib>
#include <string>

static void usage(const char* programName) {
    std::cerr << "Invalid command line arguments. Usage: " << programName << " ip<arg1> port<arg2>" << std::endl;
}

int main(int argc, char* argv[])
{
    // 参数数量错误
    if(argc != 3)
    {
        // 输出正确用法
        usage(argv[0]);
        exit(1);
    }

    std::string ip = argv[1];
    uint64_t port = atoi(argv[2]);
    // 通过端口号创建 UdpServer 实例
    // 使用智能指针 当main函数结束后会 自动释放udpServer对象，无需手动调用delete
    std::unique_ptr<UdpServer> svr(new UdpServer(port));
    // 进行初始化+启动操作
    svr->InitServer();
    svr->Start();

    return 0;
}